package com.example.usb.dao.entity;

import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Id;
import org.greenrobot.greendao.annotation.Index;
import org.greenrobot.greendao.annotation.Property;
import org.greenrobot.greendao.annotation.Generated;

/**
 * Created Date 2019/2/25.
 *
 * @author liangkun
 * ClassDescription：人脸bean
 */
@Entity
public class FaceInfoBean {
    @Id
    private String uuid; //主键
    //与HscPicBeang关联键
    @Property(nameInDb = "face_md5")
    private String faceMd5; //该人脸在图片的md5
    @Index
    @Property(nameInDb = "figure")
    private String figure; //人脸唯一的标识【查询用】
    @Property(nameInDb = "face_score")
    private double faceScore; //人脸根据标准打分

    @Property(nameInDb = "file_head_path")
    private String fileHeadPath; //人头路径
    @Property(nameInDb = "second_head_path")
    private String secondHeadPath; //人头路径,便于二次入库

    @Property(nameInDb = "photo_compress_path")
    private String photoCompressPath; //人头对应的压缩后的图片路径

    /**
     * 人脸属性
     */
    @Property(nameInDb = "face_token")
    private String faceToken; //人脸图片的临时唯一标识
    /**
     * 人脸在图片中的位置
     */
    @Property(nameInDb = "location_left")
    private double locationLeft; //人脸区域离左边界的距离
    @Property(nameInDb = "location_top")
    private double locationTop; //人脸区域离上边界的距离
    @Property(nameInDb = "location_width")
    private double locationWidth; //人脸区域的宽度
    @Property(nameInDb = "location_height")
    private double locationHeight; //人脸区域的高度
    @Property(nameInDb = "location_rotation")
    private double locationRotation; //人脸框相对于竖直方向的顺时针旋转角，[-180,180]
    /**
     * 人脸置信度，范围【0~1】，代表这是一张人脸的概率，0最小、1最大。
     */
    @Property(nameInDb = "face_probability")
    private double faceProbability;
    /**
     * 人脸年龄,当face_field包含age时返回
     */
    @Property(nameInDb = "age")
    private int age;
    /**
     * 美丑打分，范围0-100，越大表示越美。当face_fields包含beauty时返回
     */
    @Property(nameInDb = "beauty")
    private double beauty;
    /**
     * 人脸旋转角度参数
     */
    @Property(nameInDb = "yaw")
    private double yaw; //三维旋转之左右旋转角[-90(左), 90(右)]
    @Property(nameInDb = "pitch")
    private double pitch; //三维旋转之俯仰角度[-90(上), 90(下)]
    @Property(nameInDb = "roll")
    private double roll;//平面内旋转角[-180(逆时针), 180(顺时针)]
    /**
     * 表情 当 face_field包含expression时返回
     */
    @Property(nameInDb = "smlie_type")
    private String smlieType; //none:不笑；smile:微笑；laugh:大笑
    @Property(nameInDb = "expression_probability")
    private double smlieProbability; //表情置信度，范围【0~1】，0最小、1最大。
    /**
     * 脸型 当face_field包含face_shape时返回
     */
    @Property(nameInDb = "faceshape_type")
    private String faceshapeType; //square: 正方形 triangle:三角形 oval: 椭圆 heart: 心形 round: 圆形
    @Property(nameInDb = "faceshape_probability")
    private double faceshapeProbability; //置信度，范围【0~1】，代表这是人脸形状判断正确的概率，0最小、1最大。
    /**
     * 性别，face_field包含gender时返回
     */
    @Property(nameInDb = "gender_type")
    private String genderType; //male:男性 female:女性
    @Property(nameInDb = "gender_probability")
    private double genderProbability;  //性别置信度，范围【0~1】，0代表概率最小、1代表最大。
    /**
     * 是否带眼镜，face_field包含glasses时返回
     */
    @Property(nameInDb = "glass_type")
    private String glassType;//none:无眼镜，common:普通眼镜，sun:墨镜
    @Property(nameInDb = "glass_probability")
    private double glassProbability;  //性别置信度，范围【0~1】，0代表概率最小、1代表最大。
    /**
     * 人脸质量信息。face_field包含quality时返回
     */
    @Property(nameInDb = "blur")
    private double blur;   //人脸模糊程度，范围[0~1]，0表示清晰，1表示模糊
    @Property(nameInDb = "illumination")
    private double illumination; //取值范围在[0~255], 表示脸部区域的光照程度 越大表示光照越好
    @Property(nameInDb = "completeness")
    private double completeness; //人脸完整度，0或1, 0为人脸溢出图像边界，1为人脸都在图像边界内
    /**
     * 人脸各部分遮挡的概率，范围[0~1]，0表示完整，1表示不完整
     */
    @Property(nameInDb = "left_eye")
    private double leftEye; //0.6, #左眼被遮挡的阈值
    @Property(nameInDb = "right_eye")
    private double rightEye; //0.6, #右眼被遮挡的阈值
    @Property(nameInDb = "nose")
    private double nose; // 0.7, #鼻子被遮挡的阈值
    @Property(nameInDb = "mouth")
    private double mouth; // 0.7, #嘴巴被遮挡的阈值
    @Property(nameInDb = "left_cheek")
    private double lefCheek;  //0.8, #左脸颊被遮挡的阈值
    @Property(nameInDb = "right_cheek")
    private double rightCheek; //0.8, #右脸颊被遮挡的阈值
    @Property(nameInDb = "chin_contour")
    private double chinContour; // 0.6, #下巴被遮挡阈值
    /**
     * 真实人脸/卡通人脸 face_field包含face_type时返回
     */
    @Property(nameInDb = "face_type")
    private String faceType; //human: 真实人脸 cartoon: 卡通人脸
    @Property(nameInDb = "facetype_probability")
    private String facetypeProbability;  //人脸类型判断正确的置信度，范围【0~1】，0代表概率最小、1代表最大。
    @Generated(hash = 1910486958)
    public FaceInfoBean(String uuid, String faceMd5, String figure, double faceScore,
            String fileHeadPath, String secondHeadPath, String photoCompressPath,
            String faceToken, double locationLeft, double locationTop, double locationWidth,
            double locationHeight, double locationRotation, double faceProbability, int age,
            double beauty, double yaw, double pitch, double roll, String smlieType,
            double smlieProbability, String faceshapeType, double faceshapeProbability,
            String genderType, double genderProbability, String glassType,
            double glassProbability, double blur, double illumination, double completeness,
            double leftEye, double rightEye, double nose, double mouth, double lefCheek,
            double rightCheek, double chinContour, String faceType,
            String facetypeProbability) {
        this.uuid = uuid;
        this.faceMd5 = faceMd5;
        this.figure = figure;
        this.faceScore = faceScore;
        this.fileHeadPath = fileHeadPath;
        this.secondHeadPath = secondHeadPath;
        this.photoCompressPath = photoCompressPath;
        this.faceToken = faceToken;
        this.locationLeft = locationLeft;
        this.locationTop = locationTop;
        this.locationWidth = locationWidth;
        this.locationHeight = locationHeight;
        this.locationRotation = locationRotation;
        this.faceProbability = faceProbability;
        this.age = age;
        this.beauty = beauty;
        this.yaw = yaw;
        this.pitch = pitch;
        this.roll = roll;
        this.smlieType = smlieType;
        this.smlieProbability = smlieProbability;
        this.faceshapeType = faceshapeType;
        this.faceshapeProbability = faceshapeProbability;
        this.genderType = genderType;
        this.genderProbability = genderProbability;
        this.glassType = glassType;
        this.glassProbability = glassProbability;
        this.blur = blur;
        this.illumination = illumination;
        this.completeness = completeness;
        this.leftEye = leftEye;
        this.rightEye = rightEye;
        this.nose = nose;
        this.mouth = mouth;
        this.lefCheek = lefCheek;
        this.rightCheek = rightCheek;
        this.chinContour = chinContour;
        this.faceType = faceType;
        this.facetypeProbability = facetypeProbability;
    }
    @Generated(hash = 627501585)
    public FaceInfoBean() {
    }
    public String getUuid() {
        return this.uuid;
    }
    public void setUuid(String uuid) {
        this.uuid = uuid;
    }
    public String getFaceMd5() {
        return this.faceMd5;
    }
    public void setFaceMd5(String faceMd5) {
        this.faceMd5 = faceMd5;
    }
    public String getFigure() {
        return this.figure;
    }
    public void setFigure(String figure) {
        this.figure = figure;
    }
    public double getFaceScore() {
        return this.faceScore;
    }
    public void setFaceScore(double faceScore) {
        this.faceScore = faceScore;
    }
    public String getFileHeadPath() {
        return this.fileHeadPath;
    }
    public void setFileHeadPath(String fileHeadPath) {
        this.fileHeadPath = fileHeadPath;
    }
    public String getSecondHeadPath() {
        return this.secondHeadPath;
    }
    public void setSecondHeadPath(String secondHeadPath) {
        this.secondHeadPath = secondHeadPath;
    }
    public String getPhotoCompressPath() {
        return this.photoCompressPath;
    }
    public void setPhotoCompressPath(String photoCompressPath) {
        this.photoCompressPath = photoCompressPath;
    }
    public String getFaceToken() {
        return this.faceToken;
    }
    public void setFaceToken(String faceToken) {
        this.faceToken = faceToken;
    }
    public double getLocationLeft() {
        return this.locationLeft;
    }
    public void setLocationLeft(double locationLeft) {
        this.locationLeft = locationLeft;
    }
    public double getLocationTop() {
        return this.locationTop;
    }
    public void setLocationTop(double locationTop) {
        this.locationTop = locationTop;
    }
    public double getLocationWidth() {
        return this.locationWidth;
    }
    public void setLocationWidth(double locationWidth) {
        this.locationWidth = locationWidth;
    }
    public double getLocationHeight() {
        return this.locationHeight;
    }
    public void setLocationHeight(double locationHeight) {
        this.locationHeight = locationHeight;
    }
    public double getLocationRotation() {
        return this.locationRotation;
    }
    public void setLocationRotation(double locationRotation) {
        this.locationRotation = locationRotation;
    }
    public double getFaceProbability() {
        return this.faceProbability;
    }
    public void setFaceProbability(double faceProbability) {
        this.faceProbability = faceProbability;
    }
    public int getAge() {
        return this.age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public double getBeauty() {
        return this.beauty;
    }
    public void setBeauty(double beauty) {
        this.beauty = beauty;
    }
    public double getYaw() {
        return this.yaw;
    }
    public void setYaw(double yaw) {
        this.yaw = yaw;
    }
    public double getPitch() {
        return this.pitch;
    }
    public void setPitch(double pitch) {
        this.pitch = pitch;
    }
    public double getRoll() {
        return this.roll;
    }
    public void setRoll(double roll) {
        this.roll = roll;
    }
    public String getSmlieType() {
        return this.smlieType;
    }
    public void setSmlieType(String smlieType) {
        this.smlieType = smlieType;
    }
    public double getSmlieProbability() {
        return this.smlieProbability;
    }
    public void setSmlieProbability(double smlieProbability) {
        this.smlieProbability = smlieProbability;
    }
    public String getFaceshapeType() {
        return this.faceshapeType;
    }
    public void setFaceshapeType(String faceshapeType) {
        this.faceshapeType = faceshapeType;
    }
    public double getFaceshapeProbability() {
        return this.faceshapeProbability;
    }
    public void setFaceshapeProbability(double faceshapeProbability) {
        this.faceshapeProbability = faceshapeProbability;
    }
    public String getGenderType() {
        return this.genderType;
    }
    public void setGenderType(String genderType) {
        this.genderType = genderType;
    }
    public double getGenderProbability() {
        return this.genderProbability;
    }
    public void setGenderProbability(double genderProbability) {
        this.genderProbability = genderProbability;
    }
    public String getGlassType() {
        return this.glassType;
    }
    public void setGlassType(String glassType) {
        this.glassType = glassType;
    }
    public double getGlassProbability() {
        return this.glassProbability;
    }
    public void setGlassProbability(double glassProbability) {
        this.glassProbability = glassProbability;
    }
    public double getBlur() {
        return this.blur;
    }
    public void setBlur(double blur) {
        this.blur = blur;
    }
    public double getIllumination() {
        return this.illumination;
    }
    public void setIllumination(double illumination) {
        this.illumination = illumination;
    }
    public double getCompleteness() {
        return this.completeness;
    }
    public void setCompleteness(double completeness) {
        this.completeness = completeness;
    }
    public double getLeftEye() {
        return this.leftEye;
    }
    public void setLeftEye(double leftEye) {
        this.leftEye = leftEye;
    }
    public double getRightEye() {
        return this.rightEye;
    }
    public void setRightEye(double rightEye) {
        this.rightEye = rightEye;
    }
    public double getNose() {
        return this.nose;
    }
    public void setNose(double nose) {
        this.nose = nose;
    }
    public double getMouth() {
        return this.mouth;
    }
    public void setMouth(double mouth) {
        this.mouth = mouth;
    }
    public double getLefCheek() {
        return this.lefCheek;
    }
    public void setLefCheek(double lefCheek) {
        this.lefCheek = lefCheek;
    }
    public double getRightCheek() {
        return this.rightCheek;
    }
    public void setRightCheek(double rightCheek) {
        this.rightCheek = rightCheek;
    }
    public double getChinContour() {
        return this.chinContour;
    }
    public void setChinContour(double chinContour) {
        this.chinContour = chinContour;
    }
    public String getFaceType() {
        return this.faceType;
    }
    public void setFaceType(String faceType) {
        this.faceType = faceType;
    }
    public String getFacetypeProbability() {
        return this.facetypeProbability;
    }
    public void setFacetypeProbability(String facetypeProbability) {
        this.facetypeProbability = facetypeProbability;
    }

}
